package tp.tecnicasdisenio.model.accion;

import java.util.ArrayList;
import java.util.Iterator;

import tp.tecnicasdisenio.dao.MateriaDaoInterface;
import tp.tecnicasdisenio.model.AccionInterface;
import tp.tecnicasdisenio.model.AutoRespondedorInterface;
import tp.tecnicasdisenio.model.MailInterface;
import tp.tecnicasdisenio.model.entity.Cuatrimestre;
import tp.tecnicasdisenio.util.FechaUtil;

public class AccionReenviarConsultaPublica  implements AccionInterface{
	private MateriaDaoInterface materiaDao;
	
	
	public AccionReenviarConsultaPublica(){
	}
	
	
	
	public void setMateriaDao(MateriaDaoInterface materiaDao){
		this.materiaDao = materiaDao;
	}
	
	
	public void reenviarConsultaAAlumnos(MailInterface mensaje,
			AutoRespondedorInterface autoRespondedor){
		
		Cuatrimestre cuatrimestre = FechaUtil.getCuatrimestreActual();
		ArrayList<String> emailAlumnos = this.materiaDao.getEmailsAlumnos(this.materiaDao.getPorEmail(mensaje.getTo().get(0)).getCodigo(), cuatrimestre);
		Iterator<String> itEmailsAlumnos = emailAlumnos.iterator();
		while (itEmailsAlumnos.hasNext()){
			String email = itEmailsAlumnos.next().trim();
			System.out.println("from:|" + mensaje.getFrom() + "|" + email);
			if (!email.trim().equals(mensaje.getFrom().trim())){
				System.out.println("se esta reenviando la consulta publica al alumno: " + email);
				autoRespondedor.reenviarA(mensaje, email);
			}
		}
	}
	
	public void reenviarConsultaADocentes(MailInterface mensaje,
			AutoRespondedorInterface autoRespondedor){

		ArrayList<String> docentes = this.materiaDao.getEmailsDocentes(this.materiaDao.getPorEmail(mensaje.getTo().get(0)).getCodigo());
		
		Iterator<String> itEmailDocentes = docentes.iterator();
		while (itEmailDocentes.hasNext()){
			String emailDocente = itEmailDocentes.next();
			if (!emailDocente.trim().equals(mensaje.getFrom().trim())){
				System.out.println("se esta reenviando la consulta publica al docente: " + emailDocente);
				autoRespondedor.reenviarA(mensaje, emailDocente);
			}
		}
	}
	
	@Override
	public void aplicarSobre(MailInterface mensaje,
			AutoRespondedorInterface autoRespondedor) {
		
		this.reenviarConsultaADocentes(mensaje, autoRespondedor);
		
		this.reenviarConsultaAAlumnos(mensaje, autoRespondedor);
		
	}
}
